﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace hissql
{
    public partial class EnterReg : Form
    {
        public EnterReg()
        {
            InitializeComponent();
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            
        }

        private void DocEnter_Click(object sender, EventArgs e)
        {
            SqlCommand sqlCommand = new SqlCommand();                                       //声明并实例化SQL命令；
            sqlCommand.Connection = sqlHelper.sqlConnection;  
            if (com_shenfen.Text.Trim () == "医生")
            {

                sqlCommand.CommandText =
                               "INSERT tb_Doctor (No,Password) VALUES(@No,HASHBYTES('MD5',@Password));";                     //向SQL命令的参数集合添加参数的名称、值；
                sqlCommand.Parameters.AddWithValue("@No", this.tb_no.Text.Trim());
               
                sqlCommand.Parameters.AddWithValue("@Password", this.tb_password.Text.Trim());
                sqlCommand.Parameters["@Password"].SqlDbType = SqlDbType.VarChar;
            }
            if (com_shenfen.Text.Trim() == "管理员")
            {

                sqlCommand.CommandText =
                               "INSERT tb_Sys (No,Password) VALUES(@No,@Password);";                     //向SQL命令的参数集合添加参数的名称、值；
                sqlCommand.Parameters.AddWithValue("@No", this.tb_no.Text.Trim());

                sqlCommand.Parameters.AddWithValue("@Password", this.tb_password.Text.Trim());
               
            }
            if (com_shenfen.Text .Trim () == "患者")
            {
                sqlCommand.CommandText =
                              "INSERT tb_Patient (No,Password,Weiyue,Kafei) VALUES(@No,HASHBYTES('MD5',@Password),@Weiyue,@Kafei);";
                sqlCommand.Parameters.AddWithValue("@No", this.tb_no.Text.Trim());
                sqlCommand.Parameters.AddWithValue("@Weiyue", "0");
                sqlCommand.Parameters.AddWithValue("@Kafei", "0");
                sqlCommand.Parameters.AddWithValue("@Password", this.tb_password.Text.Trim());
                sqlCommand.Parameters["@Password"].SqlDbType = SqlDbType.VarChar;
            }
            sqlHelper.sqlConnection.Open();                                                                       //打开SQL连接；
            int rowAffected = sqlCommand.ExecuteNonQuery();                                             //调用SQL命令的方法ExecuteNonQuery来执行命令，向数据库写入数据，并返回受影响行数；
            sqlHelper.sqlConnection.Close();                                                                      //关闭SQL连接；
            if (rowAffected == 1)                                                                       //若成功写入1行记录；
            {
                MessageBox.Show("注册成功。");                                                          //给出正确提示；
            }
            else                                                                                        //否则；
            {
                MessageBox.Show("注册失败！");                                                          //给出错误提示；
            }

        }

        private void NurEnter_Click(object sender, EventArgs e)
        {
            
        }

        private void PatEnter_Click(object sender, EventArgs e)
        {

            SqlCommand sqlCommand = new SqlCommand();                                       //声明并实例化SQL命令；
            sqlCommand.Connection = sqlHelper.sqlConnection;                                          //将SQL命令的属性Connection指向SQL连接；
            if (com_shenfen.Text.Trim() == "医生")
            {
                sqlCommand.CommandText =                                                        //指定SQL命令的命令文本；命令文本由字符串拼接而成；
                "SELECT COUNT(1) FROM tb_Doctor"
                + " WHERE No='" + this.tb_no.Text.Trim() + "'"                         //将文本框的文本清除首尾的空格后，拼接至命令文本中；
                + " AND Password=HASHBYTES('MD5','" + this.tb_password.Text.Trim() + "');";
                sqlHelper.sqlConnection.Open();                                                           //打开SQL连接；
                int rowCount = (int)sqlCommand.ExecuteScalar();                                 //调用SQL命令的方法ExecuteScalar来执行命令，并接受单个结果（即标量）；
                sqlHelper.sqlConnection.Close();                                                          //关闭SQL连接；
                if (rowCount == 1)                                                              //若查得所输用户号相应的1行记录；
                {
                    UserHelper.No = tb_no.Text.Trim(); 
                    DocMain f = new DocMain();
                    f.Show();
                    this.Close();

                }
                else                                                                            //否则；
                {
                    MessageBox.Show("用户号/密码有误，请重新输入！");                           //给出错误提示；
                    this.tb_password.Focus();                                                  //密码文本框获得焦点；
                    this.tb_password.SelectAll();                                              //密码文本框内所有文本被选中；
                }
            }
            if (com_shenfen.Text.Trim() == "患者")
            {
                sqlCommand.CommandText =                                                        //指定SQL命令的命令文本；命令文本由字符串拼接而成；
               "SELECT COUNT(1) FROM tb_Patient"
               + " WHERE No='" + this.tb_no.Text.Trim() + "'"                         //将文本框的文本清除首尾的空格后，拼接至命令文本中；
               + " AND Password=HASHBYTES('MD5','" + this.tb_password.Text.Trim() + "');";
                sqlHelper.sqlConnection.Open();                                                           //打开SQL连接；
                int rowCount = (int)sqlCommand.ExecuteScalar();                                 //调用SQL命令的方法ExecuteScalar来执行命令，并接受单个结果（即标量）；
                sqlHelper.sqlConnection.Close();                                                          //关闭SQL连接；
                if (rowCount == 1)                                                              //若查得所输用户号相应的1行记录；
                {
                    UserHelper.No = tb_no.Text.Trim();
                    PatMain f = new PatMain ();
                    f.Show();
                    this.Close();
                }
                else                                                                            //否则；
                {
                    MessageBox.Show("用户号/密码有误，请重新输入！");                           //给出错误提示；
                    this.tb_password.Focus();                                                  //密码文本框获得焦点；
                    this.tb_password.SelectAll();                                              //密码文本框内所有文本被选中；
                }
            }
            if (com_shenfen.Text.Trim() == "管理员")
            {
                sqlCommand.CommandText =                                                        //指定SQL命令的命令文本；命令文本由字符串拼接而成；
               "SELECT COUNT(1) FROM tb_Sys"
               + " WHERE No='" + this.tb_no.Text.Trim() + "'"                         //将文本框的文本清除首尾的空格后，拼接至命令文本中；
               + " AND Password='" + this.tb_password.Text.Trim() + "';";
                sqlHelper.sqlConnection.Open();                                                           //打开SQL连接；
                int rowCount = (int)sqlCommand.ExecuteScalar();                                 //调用SQL命令的方法ExecuteScalar来执行命令，并接受单个结果（即标量）；
                sqlHelper.sqlConnection.Close();                                                          //关闭SQL连接；
                if (rowCount == 1)                                                              //若查得所输用户号相应的1行记录；
                {
                    UserHelper.No = tb_no.Text.Trim();
                    sys_guanli f = new sys_guanli();
                    f.Show();
                    this.Close();
                }
                else                                                                            //否则；
                {
                    MessageBox.Show("用户号/密码有误，请重新输入！");                           //给出错误提示；
                    this.tb_password.Focus();                                                  //密码文本框获得焦点；
                    this.tb_password.SelectAll();                                              //密码文本框内所有文本被选中；
                }
            }
        }

        private void UserRegister_Click(object sender, EventArgs e)
        {
          
        }

        private void EnterReg_Load(object sender, EventArgs e)
        {
            this.StartPosition = FormStartPosition.CenterParent;
            textBox1.Text = "   作为整个医院信息系统的重要组成部分，医院门诊管理系统可以用来实现门诊医务的各种信息处理。本系统具体实现了门诊对患者挂号、检查、缴费的系统管理。门诊医生可以进行门诊治疗。管理员可以增加和删除患者跟医生。本系统是一个典型的信息管理系统，解决了传统门诊患者挂号，初步检查，缴费等手工劳动强度大的问题，给门诊管理带来方便。";
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {

        }

        private void yiToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void 科室信息ToolStripMenuItem1_Click(object sender, EventArgs e)
        {

        }

       
    }
}
